package com.yunbiji.demo.service;

import com.yunbiji.demo.entity.CnNote;
import com.yunbiji.demo.util.NoteResult;

import java.util.List;
import java.util.Map;

/**
 * (CnNote)表服务接口
 *
 * @author makejava
 * @since 2021-06-02 08:40:15
 */

public interface CnNoteService {

    /**
     * 通过ID查询单条数据
     *
     * @param cnNoteId 主键
     * @return 实例对象
     */
    CnNote queryById(String cnNoteId);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<CnNote> queryAllByLimit(int offset, int limit);

    List<CnNote> queryAll(CnNote cnNote);

    //增加笔记事件
    NoteResult<CnNote> insert(String userId, String bookId, String title);


    /**
     * 修改数据
     *
     * @return 实例对象
     */
    NoteResult<Object> update(String noteId, String title, String body);

    /**
     * 通过主键删除数据
     *
     * @param cnNoteId 主键
     * @return 是否成功
     */
    NoteResult deleteById(String cnNoteId);

    NoteResult<CnNote> loadNote(String noteId);

    //转移笔记事件
    NoteResult moveNote(String noteId, String bookId);


    NoteResult<List<Map>> loadBookNotes(String bookId);


}